import openpyxl


def flip_cells(filename):
    # 加载电子表格文件
    workbook = openpyxl.load_workbook(filename)

    # 遍历所有工作表
    for sheet in workbook:
        # 获取工作表的最大行数和最大列数
        max_row = sheet.max_row
        max_column = sheet.max_column

        # 创建一个新的工作表，用于存储翻转后的结果
        flipped_sheet = workbook.create_sheet(title=f"{sheet.title}_flipped")

        # 遍历原始工作表的每个单元格，并将值翻转到新的工作表中的对应位置
        for row in range(1, max_row + 1):
            for column in range(1, max_column + 1):
                cell_value = sheet.cell(row=row, column=column).value
                flipped_sheet.cell(row=column, column=row, value=cell_value)

    # 删除原始工作表
    for sheet in workbook:
        if not sheet.title.endswith("_flipped"):
            workbook.remove(sheet)

    # 保存修改后的电子表格文件
    flipped_filename = f"flipped_{filename}"
    workbook.save(flipped_filename)
    workbook.close()

    print(f"翻转完成，结果已保存到文件：{flipped_filename}")


if __name__ == "__main__":
    filename = input("请输入电子表格文件的路径：")
    flip_cells(filename)
